wayland: Create the Wayland surface for the window on impl creation
authorRob Bradford <rob@linux.intel.com>
Wed, 3 Jul 2013 15:19:39 +0000 (16:19 +0100)
committerRob Bradford <rob@linux.intel.com>
Wed, 3 Jul 2013 15:26:00 +0000 (16:26 +0100)
Ths allows the retrieval of the wl_surface before the window is shown.
The surface is still created in the original places since the surface
and shell surface is destroyed when the surface is programmatically
hidden.

gdk/wayland/gdkwindow-wayland.c

index 109e642deda4dba6acd62cb0a436d782ff9e4e3b..5e282e5ea526bbb8ea56241b604871322bce8940 100644 (file)
@@ -463,6 +463,10 @@ on_monitors_changed (GdkScreen *screen,
   window_update_scale (window);
 }
 
+
+static void
+gdk_wayland_window_create_surface (GdkWindow *window);
+
 void
 _gdk_wayland_display_create_window_impl (GdkDisplay    *display,
                                         GdkWindow     *window,
@@ -515,6 +519,8 @@ _gdk_wayland_display_create_window_impl (GdkDisplay    *display,
       break;
     }
 
+  gdk_wayland_window_create_surface (window);
+
   if (attributes_mask & GDK_WA_TYPE_HINT)
     gdk_window_set_type_hint (window, attributes->type_hint);
 
@@ -985,7 +991,7 @@ static const struct wl_shell_surface_listener shell_surface_listener = {
 };
 
 static void
-gdk_wayland_window_create_surface (GdkWindow  *window)
+gdk_wayland_window_create_surface (GdkWindow *window)
 {
   GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
   GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));